Computing devices often are equipped with specialized audio hardware for performing audio signal processing. Typically such audio hardware includes one or more digital signal processing chips or algorithms that perform signal processing on audio signals being captured or generated by a computing device. Such signal processing may cause specific audio effects such as enhancing a music signal, removing echo from a VoIP (voice over Internet Protocol) signal, reducing noise, simulating reverberation, and so forth. In some cases, such dedicated audio hardware or audio cards (often connected via a host bus) are able to provide a variety of such hardware-based signal processing modes or effects.
Previously, computing devices were unable to use more than one such hardware-based signal processing mode at a time, even when a dedicated audio signal processing device is configured with multiple of such modes. An operating system would usually handle the availability of multiple modes by alternatively shifting all audio processing (for all audio paths or streams) from one mode to another. At any given time, all audio being processed by the computing device would be processed by a same hardware-based audio signal processing mode.
This approach has shortcomings recognized only by the instant inventors. At times, different applications on a computing device may have different signal processing preferences. For example, a VoIP application might need echo cancellation processing at its input and minimal processing at its output, while at the same time a music player rendering music might need noise reduction signal processing to enhance the rendered audio, which likely introduces latency. In addition, the prior single-mode approach has prevented full utilization of audio hardware resources. Regardless of whether audio hardware has been capable of concurrent multi-mode processing, operating systems managing such hardware have not been designed to take advantage of such a capability.
Techniques related to providing concurrent multi-mode audio processing are discussed below.